#pragma once

#include <AVUITransform.h>
#include <AVUIObjectCollection.h>

namespace AVUI {

class GeneralTransformCollection : public TAnimatableCollection<GeneralTransform>
{
public:
    DECLARE_ELEMENT(GeneralTransformCollection, AnimatableCollectionBase);

protected:

    virtual TRefCountedPtr<Freezable> CreateInstanceCore() AVUI_OVERRIDE { return object_allocate<GeneralTransformCollection>().get_Ptr(); }

};

class TransformCollection : public TAnimatableCollection<Transform>
{
public:
    DECLARE_ELEMENT(TransformCollection, AnimatableCollectionBase);

protected:

    virtual TRefCountedPtr<Freezable> CreateInstanceCore() AVUI_OVERRIDE { return object_allocate<TransformCollection>().get_Ptr(); }

};

typedef TRefCountedPtr<TransformCollection> TransformCollectionPtr;

}; // namespace AVUI
